package workexp.alg.sort;

import org.junit.Test;

import java.util.Arrays;

public class MergeSort {

    public int[] merge(int[] nums1, int m, int[] nums2, int n) {
        int[] result = new int[m+n];
        int j=0,k=0;
        if(m==0){
            result=nums2;
            return result;
        }else if(n==0){
            result=nums1;
            return result;
        }
        for(int i=0;i<m+n;i++){
            if(j<m&&k<n){
                if(nums1[j]<nums2[k]){
                    result[i] = nums1[j];
                    j++;
                }else if(nums1[j]>=nums2[k]){
                    result[i] = nums2[k];
                    k++;
                }
            }else if(j<m||k<n) {
                if(j>=m){
                    result[i]=nums2[k];
                    k++;
                }else if(k>=n){
                    result[i]=nums1[j];
                    j++;
                }
            }
        }
        return result;
//        nums1=result;
    }

    @Test
    public void test(){
//        int[] nums = {-7,-3,2,3,11};
        int[] nums1 = {1};
        int[] nums2 = {2,5,6};
        int[] result = merge(nums1,1,nums2,3);
        System.out.println(Arrays.toString(result));
    }
}
